<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta
        name="viewport"
        content="width=device-width, initial-scale=1.0"
    >
    <title>then方法</title>
</head>


<body>
    <script>
        const p = new Promise((resolve, reject) => {
            resolve('成功的结果123')
            // reject('失败的结果456')
        })

        // then方法函数，promise原型对象上的一个方法
        // 参数
        // 1.第一个参数：函数-形参val，实际参数由resolve传递
        // 2.第二个参数：函数-形参err，实际参数由reject传递
        // 返回值：是一个promise对象

        // 在then方法的参数函数中, 通过形参使用Promise对象的结果

        const t = p.then((val) => {
            // 当前promise的状态为fufilled时候执行
            console.log('成功时候调用', val)
        }, (err) => {
            // 当前promise的状态为rejected时候执行
            console.log('失败时候调用', err)
        })

        t.then(() => { }, () => { })

        // then链式调用
        new Promise((resolve,reject)=>{}).then().then()
        
        new Promise((resolve, reject) => {
            resolve('传入值：Taylor Swift')
        }).then((val) => {
            console.log('第一次调用', val)
            // resolve('传入值：what？')
        }).then(() => { console.log('第二次调用') })




        console.dir(p)
    </script>
</body>

</html>